﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sesi.Dados.Entidades;
using Sesi.Servico;

namespace Sesi.Telas
{
    public partial class ListarPalestrantes : Form
    {
        private IList<Palestras> _todasPalestras;
        public static bool _isUpdate;
        private static Palestras _palestraSelecionada;

        public static Palestras PalestraSelecionada
        {
            get { return _palestraSelecionada; }
            set { _palestraSelecionada = value; }
        }

        public ListarPalestrantes()
        {
            InitializeComponent();
            CarregarGrid();
        }

        private void CarregarGrid()
        {
            _todasPalestras = Fachada.GetInstancia().ObterTodosPalestras();
            bdTodosPalestras.DataSource = _todasPalestras;

            grdPalestras.DataSource = bdTodosPalestras;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void grdPalestras_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int idPalestra = (int) grdPalestras.CurrentRow.Cells[0].Value;

            PalestraSelecionada = Fachada.GetInstancia().ObterPalestrasPorId(idPalestra);
        }

        private void btNovo_Click(object sender, EventArgs e)
        {
            _isUpdate = false;

            CadastroPalestras cadastroPalestras = new CadastroPalestras();
            cadastroPalestras.ShowDialog();

            CarregarGrid();
        }

        private void PesquisarPorTema(string Tema)
        {
            if (Tema.Length > 0)
            {
                int contador = 0;
                foreach (Palestras palestras in _todasPalestras)
                {
                    if (palestras.Tema != null)
                    {
                        if (palestras.Tema.Substring(0, Tema.Length).ToUpper() == Tema.ToUpper())
                        {
                            grdPalestras.Rows[contador].Selected = true;
                            break;
                        }
                    }

                    contador++;
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (PalestraSelecionada != null)
            {
                if (MessageBox.Show("Deseja Excluir a Palestra '"+PalestraSelecionada.Tema+"'","Excluir Palestra",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    Fachada.GetInstancia().ExcluirPalestra(PalestraSelecionada.PalestraId);
                    CarregarGrid();
                }
            }
            else
            {
                MessageBox.Show("Selecione uma Palestra", "Selecione uma Palestra", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            _isUpdate = true;

            CadastroPalestras cadastroPalestras = new CadastroPalestras();
            cadastroPalestras.ShowDialog();

            CarregarGrid();
        }

        private void txtCampoPesquisa_TextChanged(object sender, EventArgs e)
        {
            PesquisarPorTema(txtCampoPesquisa.Text);
        }

        private void grdPalestras_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void grdPalestras_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            button2_Click(new object(), new EventArgs());
        }
    }
}
